package com.framework.mapper.module.user;

import com.framework.model.module.user.vo.UserVo;
import java.util.List;
import org.springframework.stereotype.Repository;

/**
 * @author 龘鵺
 * @version 1.0
 * @className com.framework.mapper.module.user
 * @description 用户mapper接口类
 * @datetime 2024-06-20 20:28:00
 */
@Repository("userMapper")
public interface UserMapper {
    /**
     * @param id 编号
     * @return com.framework.model.module.user.vo.UserVo
     * @author 龘鵺
     * @title 公共根据编号查询数据
     * @description 公共根据编号查询数据
     * @datetime 2024-06-20 20:28:00
     */
    UserVo selectByPrimaryKey(Long id);

    /**
     * @param row 用户类
     * @return int
     * @author 龘鵺
     * @title 公共非空字段验证添加
     * @description 公共非空字段验证添加
     * @datetime 2024-06-20 20:28:00
     */
    int insertSelective(UserVo row);

    /**
     * @param list 集合对象
     * @return int
     * @author 龘鵺
     * @title 批量添加
     * @description 批量添加
     * @datetime 2024-06-20 20:28:00
     */
    int insertList(List<UserVo> list);

    /**
     * @param row 用户类
     * @return int
     * @author 龘鵺
     * @title 公共根据编号非空字段验证修改
     * @description 公共根据编号非空字段验证修改
     * @datetime 2024-06-20 20:28:00
     */
    int updateByPrimaryKeySelective(UserVo row);

    /**
     * @param list 集合对象
     * @return int
     * @author 龘鵺
     * @title 公共根据编号非空字段验证批量修改
     * @description 公共根据编号非空字段验证批量修改
     * @datetime 2024-06-20 20:28:00
     */
    int updateList(List<UserVo> list);

    /**
     * @param row 用户类
     * @return int
     * @author 龘鵺
     * @title 公共根据条件逻辑删除数据
     * @description 公共根据条件逻辑删除数据
     * @datetime 2024-06-20 20:28:00
     */
    int delete(UserVo row);

    /**
     * @param row 用户类
     * @return com.framework.model.module.user.vo.UserVo
     * @author 龘鵺
     * @title 公共根据条件查询数据
     * @description 公共根据条件查询数据
     * @datetime 2024-06-20 20:28:00
     */
    UserVo selectByParam(UserVo row);

    /**
     * @param row 用户类
     * @return com.framework.model.module.user.vo.UserVo
     * @author 龘鵺
     * @title 公共根据条件查询数据 - 脱敏
     * @description 公共根据条件查询数据 - 脱敏
     * @datetime 2024-06-20 20:28:00
     */
    UserVo selectByParamSalt(UserVo row);

    /**
     * @param row 用户类
     * @return int
     * @author 龘鵺
     * @title 公共根据条件查询数据是否存在， 0=不存在， 1=存在
     * @description 公共根据条件查询数据是否存在， 0=不存在， 1=存在
     * @datetime 2024-06-20 20:28:00
     */
    int isExist(UserVo row);

    /**
     * @param row 用户类
     * @return int
     * @author 龘鵺
     * @title 公共根据条件查询数据是否存在， 0=不存在， 1=存在
     * @description 公共根据条件查询数据是否存在， 0=不存在， 1=存在
     * @datetime 2024-06-20 20:28:00
     */
    int isExistTwo(UserVo row);

    /**
     * @param row 用户类
     * @return java.util.List<com.framework.model.module.user.vo.UserVo>
     * @author 龘鵺
     * @title 公共根据条件分页查询
     * @description 公共根据条件分页查询
     * @datetime 2024-06-20 20:28:00
     */
    List<UserVo> findPageList(UserVo row);

    /**
     * @param row 用户类
     * @return int
     * @author 龘鵺
     * @title 公共根据条件分页查询总数
     * @description 公共根据条件分页查询总数
     * @datetime 2024-06-20 20:28:00
     */
    int findPageListCount(UserVo row);

    /**
     * @param row 用户类
     * @return java.util.List<com.framework.model.module.user.vo.UserVo>
     * @author 龘鵺
     * @title 公共根据条件查询集合
     * @description 公共根据条件查询集合
     * @datetime 2024-06-20 20:28:00
     */
    List<UserVo> findByList(UserVo row);
}